package main

import (
	"fmt"
	"sync"
)

func main() {

	var pool sync.Pool
	//put 将数据存储在临时对象池
	pool.Put(1)
	pool.Put("hello")
	pool.Put(true)
	pool.Put(3.13)

	//get 将数据从临时对象池中取出
	//get取数时，临时对象池第一个数据在最前面，后续的数据采用先进后出的原则
	/********取数原则*******/
	value := pool.Get()
	fmt.Println(value)

	value = pool.Get()
	fmt.Println(value)
	/********取数原则*******/

	//需要函数类型的变量
	pool.New = func() interface{} {
		return 3.14
	}

}
